package com.enjoyor.soa.traffic.core.tsms.service;

import java.util.List;

import com.enjoyor.soa.traffic.core.tsms.domain.TaskDetailInfo;
import com.enjoyor.soa.traffic.core.tsms.domain.TaskInfo;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;


public interface ITaskInfoService {

    public TaskInfo selectTaskInfoById(String taskId);
    
	public List<TaskInfo> selectTaskInfoList(String taskId, String taskName, String schemeId, String taskRankId,
			String taskTypeId, String taskBeginTime, String taskEndTime, String startPlace, String targetPlace);

	@SuppressWarnings("rawtypes")
	public Page selectTaskInfoPage(Page page, String taskId, String taskName, String schemeId, String taskRankId,
			String taskTypeId, String taskBeginTime, String taskEndTime, String startPlace, String targetPlace);

    public TaskDetailInfo selectExecuteTaskInfoById(String executeTaskId);
    
	public List<TaskDetailInfo> selectExecuteTaskBaseInfoList(String executeTaskId, String taskId, String taskName,
			String schemeId, String taskRankId, String taskTypeId, String beforeLicensePlate, String executeDate,
			String beginTime, String endTime, String startPlace, String targetPlace, String executeStatusId,
			String isWaitExecute);

	public List<TaskDetailInfo> selectExecuteTaskDetailInfoList(String executeTaskId, String taskId, String taskName,
			String schemeId, String taskRankId, String taskTypeId, String beforeLicensePlate, String executeDate,
			String beginTime, String endTime, String startPlace, String targetPlace, String executeStatusId,
			String isWaitExecute);

	@SuppressWarnings("rawtypes")
	public Page selectExecuteTaskInfoPage(Page page, String executeTaskId, String taskId, String taskName,
			String schemeId, String taskRankId, String taskTypeId, String beforeLicensePlate, String executeDate,
			String beginTime, String endTime, String startPlace, String targetPlace, String executeStatusId,
			String isWaitExecute);

    public String insertTaskInfo(TaskInfo taskInfo, String userName);

    public int editTaskInfo(TaskInfo taskInfo, String userName);

    public int editTaskBaseInfo(TaskInfo taskInfo, String userName);
    
    public int deleteTaskInfo(String taskId, String userName);
    
    public String insertFastTaskInfo(TaskInfo taskInfo, String userName);

    public int editFastTaskInfo(TaskInfo taskInfo, String userName);

    public int deleteFastTaskInfo(String taskId, String userName);
    
    //根据当前日期和方案信息编号查询需要预演的任务
    public List getTaskListByDateAndSchemeId(String schemeId,String date);

}
